package cn.mw.cmdb.entity.FinanceReport;

import cn.mw.cmdb.entity.DataAuth;
import cn.mw.cmdb.entity.PropertyTypeString;
import cn.mw.components.mongodb.anno.AutoId;
import cn.mw.components.mongodb.anno.CMDBProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.List;

@Data
@Document("mw_cmdbmd_finance_report_mapping_rule_info")
@Schema(description = "金融元上报数据字典")
public class FinanceReportMappingRuleInfo extends DataAuth {
    @CMDBProperty(searchType = PropertyTypeString.ID, searchPrefix = "_")
    @AutoId
    @Schema(description = "id")
    private String id;

    @Schema(description = "名称")
    @CMDBProperty(searchType = PropertyTypeString.ID)
    private String ruleName;

    @Schema(description = "应用范围")
    @CMDBProperty
    private List<List<FinanceReportApplicationScopeVo>> applicationScopeList;

    @Schema(description = "模型分组Id")
    @CMDBProperty
    private List<String> modelGroupIdList;

    @Schema(description = "模型ID")
    @CMDBProperty
    private List<String> modelIdList;

    @Schema(description = "关联上报通道ID")
    @CMDBProperty(searchType = PropertyTypeString.ID)
    private List<Integer> channelIds;

    @Schema(description = "字段映射")
    @CMDBProperty
    private List<FinanceReportPropertyMappingVo> propertyMappingList;

    @Schema(description = "状态")
    @CMDBProperty
    private Boolean status;

    @CMDBProperty(searchType = PropertyTypeString.ID)
    @Schema(description = "创建人")
    protected String creator;

    @CMDBProperty(searchType = PropertyTypeString.ID)
    @Schema(description = "创建时间")
    protected String createDate;

    @CMDBProperty(searchType = PropertyTypeString.ID)
    @Schema(description = "修改人")
    protected String lastUpdatedBy;

    @CMDBProperty(searchType = PropertyTypeString.ID)
    @Schema(description = "修改时间")
    protected String lastUpdateDate;
}
